#include "ListAsoc.h"
#include <string.h>



ListAsoc la_empty(void){
	ListAsoc l;
	l.tam = 0;
return l;
}

ListAsoc la_add (ListAsoc l, Key k, Data d){
	if(l.tam < LIST_SIZE){
		l.la[l.tam] = tupla_fromKeyData(k,d);
		l.tam = (l.tam) + 1;
	}
		
return l;
}

bool la_exists (ListAsoc l, Key k){
	int i;
	i = 0;
	bool b;
	b = FALSE; 
	while (i < l.tam){
		b = key_eq(k,fst(l.la[i]));
		if (b == TRUE)
			break;	
		++i;
	}	
return b;
}

Data la_search (ListAsoc l, Key k){
	Data d;
	int i;
	i = 0;

	if (la_exists (l,k) == TRUE){
		while (i < l.tam){
			if (key_eq(k,fst(l.la[i])))
				d = snd(l.la[i]);
			++i;
		}
	}
return d;
}

ListAsoc la_del (ListAsoc l, Key k){
	int i;
	i = 0;

	while (i < l.tam){
		if (key_eq(k,fst(l.la[i]))){
			l.la[i] = l.la[l.tam-1];
			l.tam = (l.tam)-1;
		}
		++i;
	}

return l;
}

void print_listAsoc (ListAsoc l){
	int i;
	i = 0;
	while (i < l.tam){
		print_tupla(l.la[i]);
		++i;
	}		
} 
